<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <!-- .wrap>button{新增}+ul.list>li*6{$$} -->
    <div class="wrap">
        <button class="btn">元素</button>
        <button class="btn">文本</button>
        <button class="btn">注释</button>
        <button class="btn">属性</button>
        <button class="btn">文档碎片</button>
        <ul class="list">
            <li>01</li>
            <li>02</li>
            <li class="mid">03</li>
            <li>04</li>
            <li>05</li>
            <li>06</li>
        </ul>
    </div>

</body>
<script>
    var btn1 = document.getElementsByClassName("btn")[0];
    var btn2 = document.getElementsByClassName("btn")[1];
    var btn3 = document.getElementsByClassName("btn")[2];
    var btn4 = document.getElementsByClassName("btn")[3];
    var btn5 = document.getElementsByClassName("btn")[4];
    var list = document.getElementsByClassName("list")[0];
    var mid = document.getElementsByClassName("mid")[0];

    // document.createElement(tagName)  传入一个标签名,创建对应类型的元素 (在没有放到页面之前 都是存储在内存当中 => 放到页面中才会显示)

    // document.createTextNode(string)  根据传入的文本创建文本节点 
    // document.createComment(string)   根据传入的文本创建注释节点 
    // document.createAttribute(attrNode)   根据传入的文本创建注释节点 
    // document.createDocumentFragment();   创建文档碎片

    // 点击按钮  新增li放到 .list中
    btn1.onclick = function () {
        // 新增li
        var li = document.createElement("li");
        console.log(li);

        li.innerText = "我是新增的li";  //新增内容
        li.setAttribute("class", "newLi"); // 绑定属性
        li.style.backgroundColor = randColor(); //修改样式
        li.onclick = function () {
            console.log("我是新增的li");
        }
        // 放到.list中

        list.appendChild(li);

        // list.append(li);
        // list.append("hello");

        // list.prepend(li);


        // list.append(list.firstElementChild);
    }

    btn2.onclick = function () {
        var li = document.createElement("li");
        console.log(li);

        // li.innerText = "我是新增的li";  //新增内容
        var text = document.createTextNode("我是新增的li");
        // console.log(text, typeof text);
        li.appendChild(text);
        // console.log(li);


        li.setAttribute("class", "newLi"); // 绑定属性
        li.style.backgroundColor = randColor(); //修改样式
        li.onclick = function () {
            console.log("我是新增的li");
        }
        // 放到.list中

        list.appendChild(li);
    }

    btn3.onclick = function () {
        var li = document.createElement("li");
        console.log(li);

        // li.innerText = "我是新增的li";  //新增内容
        // var text = document.createTextNode("我是新增的li");
        // li.appendChild(text);

        var comment = document.createComment("我是注释的内容");
        li.appendChild(comment);
        console.log(comment, li);


        li.setAttribute("class", "newLi"); // 绑定属性
        li.style.backgroundColor = randColor(); //修改样式
        li.onclick = function () {
            console.log("我是新增的li");
        }
        // 放到.list中

        list.appendChild(li);
    }

    btn4.onclick = function () {
        var li = document.createElement("li");
        console.log(li);

        // li.innerText = "我是新增的li";  //新增内容
        var text = document.createTextNode("我是新增的li");
        li.appendChild(text);

        // li.setAttribute("class", "newLi"); // 绑定属性
        var attrClass = document.createAttribute("class");
        attrClass.nodeValue = "newLi";

        li.setAttributeNode(attrClass);
        console.log(attrClass);

        li.style.backgroundColor = randColor(); //修改样式
        li.onclick = function () {
            console.log("我是新增的li");
        }
        // 放到.list中

        list.appendChild(li);
    }

    // 点击按钮创建 100个li放到 list中
    btn5.onclick = function () {
        // 新增li
        // debugger;
        // for (var i = 0; i < 100; i++) {
        //     var li = document.createElement("li");
        //     console.log(li);

        //     li.innerText = "我是新增的li";  //新增内容
        //     li.setAttribute("class", "newLi"); // 绑定属性
        //     li.style.backgroundColor = randColor(); //修改样式
        //     li.onclick = function () {
        //         console.log("我是新增的li");
        //     }
        //     // 放到.list中

        //     list.appendChild(li);
        // }

        var frg = document.createDocumentFragment();

        for (var i = 0; i < 100; i++) {
            var li = document.createElement("li");
            console.log(li);

            li.innerText = "我是新增的li";  //新增内容
            li.setAttribute("class", "newLi"); // 绑定属性
            li.style.backgroundColor = randColor(); //修改样式
            li.onclick = function () {
                console.log("我是新增的li");
            }
            // 放到.list中
            frg.appendChild(li);
        }
        console.log(frg);
        list.appendChild(frg);
    }











    // 颜色表示方式
    // 1. 颜色单词  red green blue
    // 2. 16进制   #ffffff   16(0 1 2 3 4 5 6 7 8 9 a b c d e f)
    // 3. ragb     rgba(255,255,255,1);
    function randColor() {
        var str = "0123456789abcdef";
        var colorStr = "#"
        for (var i = 0; i < 6; i++) {
            // var index = Math.round(Math.random() * (str.length - 1));
            var index = Math.floor(Math.random() * str.length);
            var char = str.charAt(index);
            colorStr += char;
        }
        return colorStr;
    }







</script>

</html>